// 从尾到头打印链表
// 思路：从头到尾将val存储起来，最后逆置一下数组即可

#include <vector>
#include <algorithm>
using namespace std;

struct ListNode {
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(nullptr) {}
};
class Solution 
{
public:
    vector<int> printListReversingly(ListNode* head) 
    {
        // 1. 遍历链表
        vector<int> ret;
        while(head)
        {
            ret.push_back(head->val);
            head = head->next;
        }
        // 2. 逆置数组
        reverse(ret.begin(), ret.end());
        return ret;
    }
};